﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Interfaces;
using Controller;

namespace GUI
{
    public partial class frmUdlejScooter : Form
    {
        List<Ikunde> kundeliste = null;
        List<Iordre> ordreliste = null;
        List<Iscooter> scooterliste = null;
        public frmUdlejScooter()
        {
            InitializeComponent();
        }

        private void frmUdlejScooter_Load(object sender, EventArgs e)
        {
            btnUdlejScooter.Enabled = false;
            cmbKunder.Items.Clear();
            KundeController kc = new KundeController();
            kundeliste = kc.HentAlleKunder();

            foreach (Ikunde item in kundeliste)
            {
                cmbKunder.Items.Add(item.Kundenr + " - " + item.Navn);
            }

            ScooterController sc = new ScooterController();
            List<Iscooter> scooterliste = sc.HentAlleLedigeUdlejningsscootere();

            lstvScooter.Items.Clear();
            foreach (Iscooter item in scooterliste)
            {
                string[] str = { item.Maerke.ToString(), item.KmAntal.ToString(), item.Stelnummer.ToString() };
                ListViewItem lvItem = new ListViewItem(str);
                lstvScooter.Items.Add(lvItem);
            }
           

        }

        private void cmbKunder_SelectedIndexChanged(object sender, EventArgs e)
        {
            int nummerIListen = cmbKunder.SelectedIndex;
            Ikunde aktuelKunde = kundeliste[nummerIListen];

            cmbOrdre.Items.Clear();
            OrdreController oc = new OrdreController();
            ordreliste = oc.HentUafsluttedeOrdrerForSpecifikKunde(aktuelKunde.Kundenr);

            foreach (Iordre item in ordreliste)
            {
                cmbOrdre.Items.Add(item.Ordrenummer + " - " + item.Ordredato);
            }
        }

        private void btnUdlejScooter_Click(object sender, EventArgs e)
        {
            if (chbKontrolleret.Checked)
            {
                
                ScooterController sc = new ScooterController();
                OrdreController oc = new OrdreController();
                
                Iscooter valgtScooter;
                int stelnummer = Convert.ToInt32(lstvScooter.SelectedItems[0].SubItems[2].Text);
                valgtScooter = sc.HentScooterFraStelnummer(stelnummer);

                // Opdaterer km-antallet, hvis værkstedet har kørt på den i mellem udlejningerne
                sc.OpdaterKmAntal(valgtScooter.Stelnummer, Convert.ToInt32(txtNyKmAntal.Text));

                // finder ordren hvor udlejningen skal tilføjes
                Iordre aktuelOrdre;
                aktuelOrdre = ordreliste[cmbOrdre.SelectedIndex];
                oc.IndsaetUdlejningPaaOrdre(aktuelOrdre.Ordrenummer);
                this.Close();

            }
            else
            {
                
            }
        }

        private void chbKontrolleret_CheckedChanged(object sender, EventArgs e)
        {
            btnUdlejScooter.Enabled = true;
        }
       
    }
}
